package com.xxxx.crm.config;

import com.xxxx.crm.interceptor.NoLoginInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * Created by HMF on 2021/07/21 13:57
 */
@Configuration  // 加上@Configuration注解，表示该类是一个配置类
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Bean // @Bean注解：表示将方法的返回值交给IOC维护
    public NoLoginInterceptor noLoginInterceptor() {
        return new NoLoginInterceptor();
    }

    /**
     * 添加拦截器
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 需要一个实现了拦截器功能的实例对象，这里使用的是 noLoginInterceptor，已经通过noLoginInterceptor()方法将NoLoginInterceptor的对象返回交给IOC处理，
        // 将拦截器设置进来
        registry.addInterceptor(noLoginInterceptor())
                /**
                 * 设置需要被拦截的资源
                 */
                // 默认拦截所有的资源
                .addPathPatterns("/**")
                //  设置放行的资源
                .excludePathPatterns("/css/*", "/images/*", "/js/**", "/lib/**", "/index", "/user/login");

    }
}
